<template>  
<div id="screen" class="container">
  <div class="screenbox">
    <!-- 标题栏 -->
    <div class="titBox">
        <img class="titbg" src="@/assets/img/titbg.png">
        <div class="dateBox">
          {{date}} <img @click="toggle" src="@/assets/img/scale.png">
        </div>
    </div>
    <!-- 内容 -->
    <div class="contentBox">
      <div ref="chinaMap" id="map" style="width: 100%;height:100%;">
      </div>
        <!-- 左侧布局 -->
        <div class="left">
          <div class="plate">
            <div class="ptit">
              <img src="@/assets/img/timg.png">设备管理
            </div>
            <div class="devBox">
              <div class="item" >
                <div class="info">
                  <div style="color: #2EE2F3" class="num">100</div>
                  <div class="name">设备总数</div>
                </div>
                <img src="@/assets/img/dev1.png" />
              </div>
              <div class="item" >
                <div class="info">
                  <div style="color: #41E99D" class="num">50</div>
                  <div class="name">在线数</div>
                </div>
                <img src="@/assets/img/dev2.png" />
              </div>
              <div class="item" >
                <div class="info" >
                  <div style="color: #EB6624" class="num">20</div>
                  <div class="name">离线数</div>
                </div>
                <img src="@/assets/img/dev3.png" />
              </div>
              <div class="item" >
                <div class="info">
                  <div style="color: #FFB700" class="num">5</div>
                  <div class="name">预警数</div>
                </div>
                <img src="@/assets/img/dev4.png" />
              </div>
            </div>                      
          </div>
          <div class="plate">
            <div class="ptit">
              <img src="@/assets/img/timg.png">连接状态
            </div>
            <div class="deviceName">
				      <div class="deviceNameOi">
					    <div class="active">HY040001</div>
				      </div>              
            </div>
            <div class="timeBox">
              <div class="item item1">
                <div class="time">
				          <div class="active">100h</div>
			          </div>
                <div class="name">离线时间</div>
              </div>
              <div class="item item2">
                <div class="time">
				          <div class="active">50h</div>
				        </div>
                <div class="name">在线时间</div>
              </div>
              <div class="item item3">
                <div class="time">
				          <div class="active">1</div>
				        </div>
                <div class="name">报警总数</div>
              </div>
            </div>
            <div class="plate" >
              <div class="ptit">
                <img src="@/assets/img/timg.png">预警信息统计
              </div>
              <div class="listBox">
                <div class="tab">
                  <div class="item" style="width: 40%">预警时间</div>
                  <div class="item" style="width: 20%">设备名称</div>
                  <div class="item" style="width: 20%">预警阀值</div>
                  <div class="item" style="width: 20%">预警项</div>
                  <div class="item" style="width: 20%">预警值</div>           
                </div>
                <div class="rowBox">
                  <div class="row" v-for="(item,i) in alertList" :key="item+i">
                    <div class="item" style="width: 40%;color:#fff;">{{item.date}}</div>			 
                    <div class="item" style="width: 20%;color:#fff;">{{item.device_name}}</div>
                    <div class="item" style="width: 20%;color:#fff;">{{item.threshold_value}}</div>          
                    <div class="item" :style="{'width':'20%','color':'#fff'}">{{item.parameter_code}}</div>
                    <div class="item" :style="{'width':'20%','color':'#fff'}">{{item.aw}}</div>             
                  </div>
                </div>  
              </div>
            </div>
          </div>
        </div>
        <!-- 中间布局 -->
        <div class="center">
          <div class="dataBox">
            <div class="tit"><img src="@/assets/img/titname.png"></div>
            <div class="item item1">
              {{ realTimeInfo.t }}
              <span>T</span>
            </div>
            <div class="item item2">
              {{ realTimeInfo.g }}
              <span>G</span>
            </div>
            <div class="item item2">
              {{ realTimeInfo.m }}
              <span>M</span>
            </div>
          </div>
          <div class="plate" style="padding-top: 10px">
            <div class="ptit">
              <img src="@/assets/img/timg.png">最新数据
            </div>
            <div class="listBox">
                <div class="tab" style="padding-right: 15px;">
				        <div style="display: flex;width: 100%;"> 
                <div class="item" style="width: 15%">时间</div>
                <div class="item" style="width: 10%">终端编码</div>
                <div class="item" style="width: 10%">设备编码</div>
                <div class="item" style="width: 10%">设备名称</div>
                <div class="item" style="width: 10%">温度</div>
                <div class="item" style="width: 10%">密度</div>
                <div class="item" style="width: 10%">粘度</div>
                <div class="item" style="width: 10%">介电常数</div>
                <div class="item" style="width: 10%">含水量</div>
				</div>
              </div>
              <div class="rowBox">
                <div class="row" v-for="(item,i) in newDataList" :key="item+i">
                  <div class="item" style="width: 15%;color:#fff;">{{item.date}}</div>
                  <div class="item" style="width: 10%;color:#fff;">{{item.sensor_sn}}</div>
                  <div class="item" style="width: 10%;color:#fff;">{{item.device_code}}</div>
                  <div class="item" style="width: 10%;color:#fff;">{{item.device_name}}</div>
                  <div class="item" style="width: 10%;color:#fff;">{{item.temper}}</div>
                  <div class="item" style="width: 10%;color:#fff;">{{item.dens}}</div>
                  <div class="item" style="width: 10%;color:#fff;">{{item.vis}}</div>
                  <div class="item" style="width: 10%;color:#fff;">{{item.diel}}</div>
                  <div class="item" style="width: 10%;color:#fff;">{{item.ppm}}</div>
                </div>
              </div>

            </div>
          </div>
        </div>
        <!-- 右侧布局 -->
        <div class="right">
          <div class="plate">
            <div class="ptit">
              <img src="@/assets/img/timg.png">终端运行统计
            </div>
            <div id="sensorChart"></div>
          </div>
          <div class="plate" style="margin-top: 30px">
            <div class="ptit">
              <img src="@/assets/img/timg.png">油品信息统计
            </div>
            <div style="position: relative">
              <div style="transform: translateY(-15px)" id="oilChart">  </div>
              <div style="transform: translateY(-15px)" class="yuan">
                <img src="@/assets/img/yuan.png">
              </div>
            </div>
          </div>
          <div class="plate">
            <div class="ptit">
              <img src="@/assets/img/timg.png">设备类型统计
            </div>
            <div id="deviceTypeChart"></div>
          </div>
        </div>
    </div>
  </div>

</div>
</template>

<script setup>
import {ref,onMounted,onUnmounted} from 'vue'
import * as echarts from 'echarts'
import china from '@/assets/map/china.json'
import world from '@/assets/map/world.json'

const date = ref('')
const newDataList = ref([])
const alertList = ref([])
let worldAndChina=ref({})
const realTimeInfo=ref({})
let timer=null
//图表曲线类型
const pathSymbols = {
  reindeer:
    'path://M-22.788,24.521c2.08-0.986,3.611-3.905,4.984-5.892 c-2.686,2.782-5.047,5.884-9.102,7.312c-0.992,0.005-0.25-2.016,0.34-2.362l1.852-0.41c0.564-0.218,0.785-0.842,0.902-1.347 c2.133-0.727,4.91-4.129,6.031-6.194c1.748-0.7,4.443-0.679,5.734-2.293c1.176-1.468,0.393-3.992,1.215-6.557 c0.24-0.754,0.574-1.581,1.008-2.293c-0.611,0.011-1.348-0.061-1.959-0.608c-1.391-1.245-0.785-2.086-1.297-3.313 c1.684,0.744,2.5,2.584,4.426,2.586C-8.46,3.012-8.255,2.901-8.04,2.824c6.031-1.952,15.182-0.165,19.498-3.937 c1.15-3.933-1.24-9.846-1.229-9.938c0.008-0.062-1.314-0.004-1.803-0.258c-1.119-0.771-6.531-3.75-0.17-3.33 c0.314-0.045,0.943,0.259,1.439,0.435c-0.289-1.694-0.92-0.144-3.311-1.946c0,0-1.1-0.855-1.764-1.98 c-0.836-1.09-2.01-2.825-2.992-4.031c-1.523-2.476,1.367,0.709,1.816,1.108c1.768,1.704,1.844,3.281,3.232,3.983 c0.195,0.203,1.453,0.164,0.926-0.468c-0.525-0.632-1.367-1.278-1.775-2.341c-0.293-0.703-1.311-2.326-1.566-2.711 c-0.256-0.384-0.959-1.718-1.67-2.351c-1.047-1.187-0.268-0.902,0.521-0.07c0.789,0.834,1.537,1.821,1.672,2.023 c0.135,0.203,1.584,2.521,1.725,2.387c0.102-0.259-0.035-0.428-0.158-0.852c-0.125-0.423-0.912-2.032-0.961-2.083 c-0.357-0.852-0.566-1.908-0.598-3.333c0.4-2.375,0.648-2.486,0.549-0.705c0.014,1.143,0.031,2.215,0.602,3.247 c0.807,1.496,1.764,4.064,1.836,4.474c0.561,3.176,2.904,1.749,2.281-0.126c-0.068-0.446-0.109-2.014-0.287-2.862 c-0.18-0.849-0.219-1.688-0.113-3.056c0.066-1.389,0.232-2.055,0.277-2.299c0.285-1.023,0.4-1.088,0.408,0.135 c-0.059,0.399-0.131,1.687-0.125,2.655c0.064,0.642-0.043,1.768,0.172,2.486c0.654,1.928-0.027,3.496,1,3.514 c1.805-0.424,2.428-1.218,2.428-2.346c-0.086-0.704-0.121-0.843-0.031-1.193c0.221-0.568,0.359-0.67,0.312-0.076 c-0.055,0.287,0.031,0.533,0.082,0.794c0.264,1.197,0.912,0.114,1.283-0.782c0.15-0.238,0.539-2.154,0.545-2.522 c-0.023-0.617,0.285-0.645,0.309,0.01c0.064,0.422-0.248,2.646-0.205,2.334c-0.338,1.24-1.105,3.402-3.379,4.712 c-0.389,0.12-1.186,1.286-3.328,2.178c0,0,1.729,0.321,3.156,0.246c1.102-0.19,3.707-0.027,4.654,0.269 c1.752,0.494,1.531-0.053,4.084,0.164c2.26-0.4,2.154,2.391-1.496,3.68c-2.549,1.405-3.107,1.475-2.293,2.984 c3.484,7.906,2.865,13.183,2.193,16.466c2.41,0.271,5.732-0.62,7.301,0.725c0.506,0.333,0.648,1.866-0.457,2.86 c-4.105,2.745-9.283,7.022-13.904,7.662c-0.977-0.194,0.156-2.025,0.803-2.247l1.898-0.03c0.596-0.101,0.936-0.669,1.152-1.139 c3.16-0.404,5.045-3.775,8.246-4.818c-4.035-0.718-9.588,3.981-12.162,1.051c-5.043,1.423-11.449,1.84-15.895,1.111 c-3.105,2.687-7.934,4.021-12.115,5.866c-3.271,3.511-5.188,8.086-9.967,10.414c-0.986,0.119-0.48-1.974,0.066-2.385l1.795-0.618 C-22.995,25.682-22.849,25.035-22.788,24.521z',
  plane:
    'path://M1.112,32.559l2.998,1.205l-2.882,2.268l-2.215-0.012L1.112,32.559z M37.803,23.96 c0.158-0.838,0.5-1.509,0.961-1.904c-0.096-0.037-0.205-0.071-0.344-0.071c-0.777-0.005-2.068-0.009-3.047-0.009 c-0.633,0-1.217,0.066-1.754,0.18l2.199,1.804H37.803z M39.738,23.036c-0.111,0-0.377,0.325-0.537,0.924h1.076 C40.115,23.361,39.854,23.036,39.738,23.036z M39.934,39.867c-0.166,0-0.674,0.705-0.674,1.986s0.506,1.986,0.674,1.986 s0.672-0.705,0.672-1.986S40.102,39.867,39.934,39.867z M38.963,38.889c-0.098-0.038-0.209-0.07-0.348-0.073 c-0.082,0-0.174,0-0.268-0.001l-7.127,4.671c0.879,0.821,2.42,1.417,4.348,1.417c0.979,0,2.27-0.006,3.047-0.01 c0.139,0,0.25-0.034,0.348-0.072c-0.646-0.555-1.07-1.643-1.07-2.967C37.891,40.529,38.316,39.441,38.963,38.889z M32.713,23.96 l-12.37-10.116l-4.693-0.004c0,0,4,8.222,4.827,10.121H32.713z M59.311,32.374c-0.248,2.104-5.305,3.172-8.018,3.172H39.629 l-25.325,16.61L9.607,52.16c0,0,6.687-8.479,7.95-10.207c1.17-1.6,3.019-3.699,3.027-6.407h-2.138 c-5.839,0-13.816-3.789-18.472-5.583c-2.818-1.085-2.396-4.04-0.031-4.04h0.039l-3.299-11.371h3.617c0,0,4.352,5.696,5.846,7.5 c2,2.416,4.503,3.678,8.228,3.87h30.727c2.17,0,4.311,0.417,6.252,1.046c3.49,1.175,5.863,2.7,7.199,4.027 C59.145,31.584,59.352,32.025,59.311,32.374z M22.069,30.408c0-0.815-0.661-1.475-1.469-1.475c-0.812,0-1.471,0.66-1.471,1.475 s0.658,1.475,1.471,1.475C21.408,31.883,22.069,31.224,22.069,30.408z M27.06,30.408c0-0.815-0.656-1.478-1.466-1.478 c-0.812,0-1.471,0.662-1.471,1.478s0.658,1.477,1.471,1.477C26.404,31.885,27.06,31.224,27.06,30.408z M32.055,30.408 c0-0.815-0.66-1.475-1.469-1.475c-0.808,0-1.466,0.66-1.466,1.475s0.658,1.475,1.466,1.475 C31.398,31.883,32.055,31.224,32.055,30.408z M37.049,30.408c0-0.815-0.658-1.478-1.467-1.478c-0.812,0-1.469,0.662-1.469,1.478 s0.656,1.477,1.469,1.477C36.389,31.885,37.049,31.224,37.049,30.408z M42.039,30.408c0-0.815-0.656-1.478-1.465-1.478 c-0.811,0-1.469,0.662-1.469,1.478s0.658,1.477,1.469,1.477C41.383,31.885,42.039,31.224,42.039,30.408z M55.479,30.565 c-0.701-0.436-1.568-0.896-2.627-1.347c-0.613,0.289-1.551,0.476-2.73,0.476c-1.527,0-1.639,2.263,0.164,2.316 C52.389,32.074,54.627,31.373,55.479,30.565z',
  train:
    'path://M67.335,33.596L67.335,33.596c-0.002-1.39-1.153-3.183-3.328-4.218h-9.096v-2.07h5.371 c-4.939-2.07-11.199-4.141-14.89-4.141H19.72v12.421v5.176h38.373c4.033,0,8.457-1.035,9.142-5.176h-0.027 c0.076-0.367,0.129-0.751,0.129-1.165L67.335,33.596L67.335,33.596z M27.999,30.413h-3.105v-4.141h3.105V30.413z M35.245,30.413 h-3.104v-4.141h3.104V30.413z M42.491,30.413h-3.104v-4.141h3.104V30.413z M49.736,30.413h-3.104v-4.141h3.104V30.413z  M14.544,40.764c1.143,0,2.07-0.927,2.07-2.07V35.59V25.237c0-1.145-0.928-2.07-2.07-2.07H-9.265c-1.143,0-2.068,0.926-2.068,2.07 v10.351v3.105c0,1.144,0.926,2.07,2.068,2.07H14.544L14.544,40.764z M8.333,26.272h3.105v4.141H8.333V26.272z M1.087,26.272h3.105 v4.141H1.087V26.272z M-6.159,26.272h3.105v4.141h-3.105V26.272z M-9.265,41.798h69.352v1.035H-9.265V41.798z',
  ship: 'path://M16.678,17.086h9.854l-2.703,5.912c5.596,2.428,11.155,5.575,16.711,8.607c3.387,1.847,6.967,3.75,10.541,5.375 v-6.16l-4.197-2.763v-5.318L33.064,12.197h-11.48L20.43,15.24h-4.533l-1.266,3.286l0.781,0.345L16.678,17.086z M49.6,31.84 l0.047,1.273L27.438,20.998l0.799-1.734L49.6,31.84z M33.031,15.1l12.889,8.82l0.027,0.769L32.551,16.1L33.031,15.1z M22.377,14.045 h9.846l-1.539,3.365l-2.287-1.498h1.371l0.721-1.352h-2.023l-0.553,1.037l-0.541-0.357h-0.34l0.359-0.684h-2.025l-0.361,0.684 h-3.473L22.377,14.045z M23.695,20.678l-0.004,0.004h0.004V20.678z M24.828,18.199h-2.031l-0.719,1.358h2.029L24.828,18.199z  M40.385,34.227c-12.85-7.009-25.729-14.667-38.971-12.527c1.26,8.809,9.08,16.201,8.213,24.328 c-0.553,4.062-3.111,0.828-3.303,7.137c15.799,0,32.379,0,48.166,0l0.066-4.195l1.477-7.23 C50.842,39.812,45.393,36.961,40.385,34.227z M13.99,35.954c-1.213,0-2.195-1.353-2.195-3.035c0-1.665,0.98-3.017,2.195-3.017 c1.219,0,2.195,1.352,2.195,3.017C16.186,34.604,15.213,35.954,13.99,35.954z M23.691,20.682h-2.02l-0.588,1.351h2.023 L23.691,20.682z M19.697,18.199l-0.721,1.358h2.025l0.727-1.358H19.697z',
  car: 'path://M49.592,40.883c-0.053,0.354-0.139,0.697-0.268,0.963c-0.232,0.475-0.455,0.519-1.334,0.475 c-1.135-0.053-2.764,0-4.484,0.068c0,0.476,0.018,0.697,0.018,0.697c0.111,1.299,0.697,1.342,0.931,1.342h3.7 c0.326,0,0.628,0,0.861-0.154c0.301-0.196,0.43-0.772,0.543-1.78c0.017-0.146,0.025-0.336,0.033-0.56v-0.01 c0-0.068,0.008-0.154,0.008-0.25V41.58l0,0C49.6,41.348,49.6,41.09,49.592,40.883L49.592,40.883z M6.057,40.883 c0.053,0.354,0.137,0.697,0.268,0.963c0.23,0.475,0.455,0.519,1.334,0.475c1.137-0.053,2.762,0,4.484,0.068 c0,0.476-0.018,0.697-0.018,0.697c-0.111,1.299-0.697,1.342-0.93,1.342h-3.7c-0.328,0-0.602,0-0.861-0.154 c-0.309-0.18-0.43-0.772-0.541-1.78c-0.018-0.146-0.027-0.336-0.035-0.56v-0.01c0-0.068-0.008-0.154-0.008-0.25V41.58l0,0 C6.057,41.348,6.057,41.09,6.057,40.883L6.057,40.883z M49.867,32.766c0-2.642-0.344-5.224-0.482-5.507 c-0.104-0.207-0.766-0.749-2.271-1.773c-1.522-1.042-1.487-0.887-1.766-1.566c0.25-0.078,0.492-0.224,0.639-0.241 c0.326-0.034,0.345,0.274,1.023,0.274c0.68,0,2.152-0.18,2.453-0.48c0.301-0.303,0.396-0.405,0.396-0.672 c0-0.268-0.156-0.818-0.447-1.146c-0.293-0.327-1.541-0.49-2.273-0.585c-0.729-0.095-0.834,0-1.022,0.121 c-0.304,0.189-0.32,1.919-0.32,1.919l-0.713,0.018c-0.465-1.146-1.11-3.452-2.117-5.269c-1.103-1.979-2.256-2.599-2.737-2.754 c-0.474-0.146-0.904-0.249-4.131-0.576c-3.298-0.344-5.922-0.388-8.262-0.388c-2.342,0-4.967,0.052-8.264,0.388 c-3.229,0.336-3.66,0.43-4.133,0.576s-1.633,0.775-2.736,2.754c-1.006,1.816-1.652,4.123-2.117,5.269L9.87,23.109 c0,0-0.008-1.729-0.318-1.919c-0.189-0.121-0.293-0.225-1.023-0.121c-0.732,0.104-1.98,0.258-2.273,0.585 c-0.293,0.327-0.447,0.878-0.447,1.146c0,0.267,0.094,0.379,0.396,0.672c0.301,0.301,1.773,0.48,2.453,0.48 c0.68,0,0.697-0.309,1.023-0.274c0.146,0.018,0.396,0.163,0.637,0.241c-0.283,0.68-0.24,0.524-1.764,1.566 c-1.506,1.033-2.178,1.566-2.271,1.773c-0.139,0.283-0.482,2.865-0.482,5.508s0.189,5.02,0.189,5.86c0,0.354,0,0.976,0.076,1.565 c0.053,0.354,0.129,0.697,0.268,0.966c0.232,0.473,0.447,0.516,1.334,0.473c1.137-0.051,2.779,0,4.477,0.07 c1.135,0.043,2.297,0.086,3.33,0.11c2.582,0.051,1.826-0.379,2.928-0.36c1.102,0.016,5.447,0.196,9.424,0.196 c3.976,0,8.332-0.182,9.423-0.196c1.102-0.019,0.346,0.411,2.926,0.36c1.033-0.018,2.195-0.067,3.332-0.11 c1.695-0.062,3.348-0.121,4.477-0.07c0.886,0.043,1.103,0,1.332-0.473c0.132-0.269,0.218-0.611,0.269-0.966 c0.086-0.592,0.078-1.213,0.078-1.565C49.678,37.793,49.867,35.408,49.867,32.766L49.867,32.766z M13.219,19.735 c0.412-0.964,1.652-2.9,2.256-3.244c0.145-0.087,1.426-0.491,4.637-0.706c2.953-0.198,6.217-0.276,7.73-0.276 c1.513,0,4.777,0.078,7.729,0.276c3.201,0.215,4.502,0.611,4.639,0.706c0.775,0.533,1.842,2.28,2.256,3.244 c0.412,0.965,0.965,2.858,0.861,3.116c-0.104,0.258,0.104,0.388-1.291,0.275c-1.387-0.103-10.088-0.216-14.185-0.216 c-4.088,0-12.789,0.113-14.184,0.216c-1.395,0.104-1.188-0.018-1.291-0.275C12.254,22.593,12.805,20.708,13.219,19.735 L13.219,19.735z M16.385,30.511c-0.619,0.155-0.988,0.491-1.764,0.482c-0.775,0-2.867-0.353-3.314-0.371 c-0.447-0.017-0.842,0.302-1.076,0.362c-0.23,0.06-0.688-0.104-1.377-0.318c-0.688-0.216-1.092-0.155-1.316-1.094 c-0.232-0.93,0-2.264,0-2.264c1.488-0.068,2.928,0.069,5.621,0.826c2.693,0.758,4.191,2.213,4.191,2.213 S17.004,30.357,16.385,30.511L16.385,30.511z M36.629,37.293c-1.23,0.164-6.386,0.207-8.794,0.207c-2.412,0-7.566-0.051-8.799-0.207 c-1.256-0.164-2.891-1.67-1.764-2.865c1.523-1.627,1.24-1.576,4.701-2.023C24.967,32.018,27.239,32,27.834,32 c0.584,0,2.865,0.025,5.859,0.404c3.461,0.447,3.178,0.396,4.699,2.022C39.521,35.623,37.887,37.129,36.629,37.293L36.629,37.293z  M48.129,29.582c-0.232,0.93-0.629,0.878-1.318,1.093c-0.688,0.216-1.145,0.371-1.377,0.319c-0.231-0.053-0.627-0.371-1.074-0.361 c-0.448,0.018-2.539,0.37-3.313,0.37c-0.772,0-1.146-0.328-1.764-0.481c-0.621-0.154-0.966-0.154-0.966-0.154 s1.49-1.464,4.191-2.213c2.693-0.758,4.131-0.895,5.621-0.826C48.129,27.309,48.361,28.643,48.129,29.582L48.129,29.582z'
};

const formatData = ()=>{
    const now = new Date()
    date.value = now.toLocaleString('zh-CN', { 
    year: 'numeric',
    month: '2-digit',
    day: '2-digit',
    hour: '2-digit',
    minute: '2-digit',
    minute: '2-digit',
    second: '2-digit',
    hour12: false
  }).replace(/\//g, '-')
  realTimeInfo.value={
    t:now.getHours(),
    g:now.getMinutes(),
    m:now.getSeconds()
  }
}
const initMap = (geoCoordMap,from) => {
  echarts.registerMap('china',worldAndChina)
  var charDom=document.getElementById('map')
  var myChart = echarts.init(charDom)

  // 起点名称和经纬度
  const fromName=from.fromName
  let fromLatlng = from.fromLatlng
  //飞线数据
  const linesData = geoCoordMap.map(row=>{
    return{
      fromName:row.name,
      toName:fromName,
      coords:[
				row.latlng,
				fromLatlng
			],
      lineStyle: {
              color: '#FFE747',
              curveness: 0.2
      }
    }
  })
  // 终点标点数据
  let effectData = geoCoordMap.map(row=>{
    return {
            value: row.latlng,
            name: row.name,
            id:row.id,
            device_name:row.device_name,
            device_code:row.device_code,
            device_type:row.device_type,
            lineStyle: {
              color: '#FFE747'
            }
          }
  })
  var options= {
      visualMap: {
            show: false,
            type: 'continuous',
            calculable: true,
            left: '0%',
            bottom: '3%',
            dimension: 0, // 指定用数据的『哪个维度』，映射到视觉元素上。『数据』即 series.data。 可以把 series.data 理解成一个二维数组,其中每个列是一个维度,默认取 data 中最后一个维度
            seriesIndex: 1,
            itemWidth: 15, // 图形的宽度，即长条的宽度。
            itemHeight: 68,
            min: 0,
            // max: that.mapmax,
            // color: ['#01fffd', '#1E74FF'],
            // color: ['#0B64F3', '#1A05B8'],
            color: ['#eb6624 ', '#eb6624'],
            textStyle: {
              color: '#ccc',
              fontSize: 12
            }
          },
      tooltip: {
            // 轮播框
            enterable: true,
            show: true,
            trigger: "item",
            triggerOn: "click",
            transitionDuration: 1,
            textStyle: {
              fontFamily: 'Microsoft YaHei',
              color: '#b8c8e5',
              fontSize: 13
            },
            backgroundColor: 'rgba(15,33,70,0.7)',
            borderColor: 'rgba(54,82,132,0.7)',
            borderWidth: 1,
            padding: [10, 14],
            extraCssText: 'z-index:4',
            formatter: function (parma) {
              console.log(parma,999);
              if(parma.seriesType === 'effectScatter'&&parma.name!='北京市') {
                // parma.name
                console.log(parma.data);
                that.parasInfo=parma.data;
                let element = `<div class="popver">
                  <div class="popver_item">设备名称：${parma.data.device_name}</div>
                  <div class="popver_item">运行状态：<span style="color:#4AD194">运行中</span></div>
                  <div clasousougouss="popver_btn" onclick="goDetails()">查看设备详情</div>
                </div>    `
                return element
              } else {
                return  parma.name
              }
            }
      },
      legend: {
            show: false,
            color: ['#5bffde'],
            icon: 'circle', // 只显示小圆点
            top: '10.7%',
            // bottom: '2.8%',
            left: '2%',
            itemGap: 22,
            itemWidth: 8, // 图例图形宽度
            textStyle: {
              color: '#ffff',
              fontSize: 14,
              fontWeight: 'normal',
              // align: "left",
              padding: [0, 3],
              fontFamily: 'Microsoft YaHei'
            },
            itemHeight: 8 // 改变圆圈大小
      },
      geo: {
            // 真的地图
            type: 'map',
            map: 'china',
            //zoom: 3.398, // 缩放比例
			zoom: 5.398, // 缩放比例 xhl-20240717
            geoIndex: 1,
            left: '20%',
            top: '11%',
            large: true,
            aspectScale: 0.85, // 长宽比
            center:[118.22335860619073, 35.26546466238136],
            animationDurationUpdate:0,
            showLegendSymbol: true, // 存在legend时显示
            label: {
              normal: {
                show: false
              },
              emphasis: {
                show: false,
                textStyle: {
                  color: '#fff'
                }
              }
            },
            roam: true,
            scaleLimit: {
              min: 0.7,
              max: 10
            },
            itemStyle: {
              normal: {
                color: 'none',
                areaColor:'#1c232b', //'#01032a',
                borderColor: '#666', // 4065eb
                borderWidth: 1
              },
              emphasis: {
                areaColor: '#34d1fc'
              }
            },
            select: {
              // 选中时样式
              label: {
                color: '#fff'
              },
              itemStyle: {
                areaColor: '#34d1fc'
              }
            },
            animation: true,

            data: []
            // data: that.maparr
      },
      series: [
            //飞线
            {
              type: 'lines',
              zlevel: 5,
              effect: {
                show: true,
                period: 5, //箭头指向速度，值越小速度越快
                trailLength: 0, //特效尾迹长度[0,1]值越大，尾迹越长重
                symbol: 'arrow', //ECharts 提供的标记类型包括 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
                symbolSize: 8, //图标大小
              },
              lineStyle: {
                color: '#FFE747',
                type: 'dashed',
                width: 2, //尾迹线条宽度
                opacity: 1, //尾迹线条透明度
                curveness: 0.3 //尾迹线条曲直度
              },
              data: linesData,
              markPoint:{
                symbol: 'circle', //ECharts 提供的标记类型包括 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
                symbolSize: 8, //图标大小
              }
            },
            //起点
            {
              type: 'effectScatter',
              coordinateSystem: 'geo',
              zlevel: 6,
              rippleEffect: {
                //涟漪特效
                period: 4, //动画时间，值越小速度越快
                brushType: 'stroke', //波纹绘制方式 stroke, fill
                scale: 4 //波纹圆环最大限制，值越大波纹越大
              },
              label: {
                show: false,
                position: 'right', //显示位置
                offset: [5, 0], //偏移设置
                formatter: '{b}', //圆环显示文字
                color: 'red'
              },
              symbol: 'circle',
              symbolSize: function() {
                return 12; //圆环大小
              },
              itemStyle: {
                show: false,
                color: '#ff8400',
              },
              data: [{value: fromLatlng,name: fromName}]
            },
            // 终点
            {
              type: 'effectScatter',
              coordinateSystem: 'geo',
              zlevel: 6,
              rippleEffect: {
                //涟漪特效
                period: 4, //动画时间，值越小速度越快
                brushType: 'stroke', //波纹绘制方式 stroke, fill
                scale: 4 //波纹圆环最大限制，值越大波纹越大
              },
              label: {
                show: false,
                position: 'right', //显示位置
                offset: [5, 0], //偏移设置
                formatter: '{b}', //圆环显示文字
                color: 'red'
              },
              symbol: 'circle',
              symbolSize: function() {
                return 6; //圆环大小
              },
              itemStyle: {
                show: false,
                color: '#befaff',
              },
              data: effectData
            }
      ]
  }
  myChart.setOption(options);
  //          //echart 配制option  
  //  var options= {
  //       tooltip: {
  //         show:true,
  //         triggerOn: "mousemove",   //mousemove、click
  //         padding:[4,8],
  //         borderWidth:1,
  //         borderColor:'#409eff',
  //         backgroundColor:'rgba(255,255,255,0.7)',
  //         textStyle:{
  //           color:'#000000',
  //           fontSize:13
  //         },
  //         formatter: function(e) {
  //           return e.name;
  //         }
  //       },
  //       geo: [
  //         // 第一层
  //         {
  //           map: "china",
  //           z: 3,
  //           zoom: 1.2,
  //           aspectScale: 0.85,
  //           roam: false,
  //           top: '10%',
  //           layoutSize: "100%", //保持地图宽高比
  //           regions: [
  //             { // 隐藏南海诸岛,因为顶层已经添加过了
  //               name: '南海诸岛',
  //               itemStyle: {
  //                 borderWidth: 0.5,
  //                 shadowBlur: 0,
  //                 borderColor: '#61aacb',
  //                 areaColor: '#104584'
  //               }
  //             }
  //           ],
  //           itemStyle:{
  //             borderColor: '#c8feff',
  //             borderWidth: 0.5,
  //             shadowBlur: 3,
  //             shadowColor: '#66edff',
  //             areaColor: '#0862db'
  //           },
  //           emphasis:{
  //             itemStyle:{
  //               shadowBlur: 10,
  //               borderWidth: 1,
  //               areaColor: '#2da9ff',
  //             },
  //             label:{
  //               show:false,
  //               color: '#ffffff',
  //             }
  //           },
  //           select:{
  //             itemStyle:{
  //               shadowBlur: 10,
  //               borderWidth: 1,
  //               areaColor: '#2da9ff',
  //             },
  //             label:{
  //               color: '#ffffff',
  //             }
  //           }
  //         },
  //         // 第二层
  //         {
  //           map: "china",
  //           z: 2,
  //           zoom: 1.2,
  //           aspectScale: 0.85,
  //           roam: false,
  //           silent:true,
  //           top: '10%',
  //           layoutSize: "100%", //保持地图宽高比
  //           regions: [
  //             { // 隐藏南海诸岛,因为顶层已经添加过了
  //               name: '南海诸岛',
  //               itemStyle: {
  //                 opacity: 0 // 为 0 时不绘制该图形
  //               },
  //               label: {
  //                 show: false
  //               }
  //             }
  //           ],
  //           itemStyle:{
  //             borderColor: '#d8feff',
  //             borderWidth: 3,
  //             shadowBlur: 10,
  //             shadowColor: '#22a1ff',
  //             areaColor: '#0862db',
  //             shadowOffsetX: 0,
  //             shadowOffsetY: 8
  //           },
  //         },
  //         // 第三层
  //         {
  //           map: "china",
  //           z: 1,
  //           zoom: 1.2,
  //           aspectScale: 0.85,
  //           top: '11.5%',
  //           silent:true,
  //           layoutSize: "100%", //保持地图宽高比
  //           itemStyle:{
  //             borderColor: '#c8feff',
  //             borderWidth: 1,
  //             shadowBlur: 0,
  //             shadowColor: '#99c4ff',
  //             areaColor: '#4ebaff',
  //           },
  //           regions: [
  //             { // 隐藏南海诸岛,因为顶层已经添加过了
  //               name: '南海诸岛',
  //               itemStyle: {
  //                 opacity: 0 // 为 0 时不绘制该图形
  //               },
  //               label: {
  //                 show: false
  //               }
  //             }
  //           ],
  //         },
  //         // 第四层
  //         {
  //           map: "china",
  //           z: 0,
  //           zoom: 1.2,
  //           aspectScale: 0.85,
  //           top: '12%',
  //           silent:true,
  //           layoutSize: "100%", //保持地图宽高比
  //           itemStyle:{
  //             borderColor: '#66edff',
  //             borderWidth: 2,
  //             shadowBlur: 20,
  //             shadowColor: '#4d99ff',
  //             areaColor: '#1752ad',
  //             shadowOffsetX: 0,
  //             shadowOffsetY: 8
  //           },
  //           regions: [
  //             { // 隐藏南海诸岛,因为顶层已经添加过了
  //               name: '南海诸岛',
  //               itemStyle: {
  //                 opacity: 0 // 为 0 时不绘制该图形
  //               },
  //               label: {
  //                 show: false
  //               }
  //             }
  //           ],
  //         },
  //       ],
  //       series: [
  //         // 地图
  //         {
  //           type: "map",
  //           geoIndex: 0,
  //           data: []
  //         }
  //       ]
  //     }
  //     myChart.setOption(options);
}
const initSensorChart=(name,data)=>{
  var chartDom = document.getElementById('sensorChart');
        var myChart = echarts.init(chartDom);
        var option;
        option = {
          grid: {
            left: '5%',
            right: '5%',
            bottom: '3%',
            top:'20%',
            containLabel: true
          },
          tooltip: {
            trigger: 'item'
          },
          xAxis: {
            type: 'category',
            data: name,


            axisTick: {
              show: false // 这里设置为 false 隐藏 x 轴刻度线
            },
            axisLabel: {
              interval: 0,
              textStyle: {
                color: '#fff'
              }
            },
          },
          yAxis: {
            type: 'value',
            splitLine: {
              show: true,
              lineStyle: {
                color: 'rgba(255,255,255,0.3)' // 设置网格线颜色为红色
              }
            },
            axisLabel: {
              textStyle: {
                color: '#fff'
              }
            },
          },
          series: [
            {
              data: data,
              type: 'bar',
              barWidth:'15',
              itemStyle: {
                color: {
                  type: 'linear',
                  x: 0,
                  y: 1,
                  x2: 0,
                  y2: 0,
                  colorStops: [
                    {
                      offset: 0,
                      color: 'transparent' // 0% 处的颜色
                    },
                    {
                      offset: 0.6,
                      color: '#FF503E' // 100% 处的颜色
                    },
                    {
                      offset: 1,
                      color: '#FF503E' // 100% 处的颜色
                    }
                  ]
                }
              }
            }
          ]
        }
        option && myChart.setOption(option)
}
const initOilChart=(data)=>{  
  var chartDom = document.getElementById('oilChart');
        var myChart = echarts.init(chartDom);
        var option;
        option = {
          tooltip: {
            formatter: '{a} <br/>{b} : {c} ({d}%)',
            trigger: 'item',

          },
          grid: {
            top:'10',
          },
          legend: {
            bottom: '0%',
            left: 'center',
            textStyle: {
              color: '#fff'
            }
          },
          series: [
            {
              name: '油品信息',
              type: 'pie',
              radius: ['30%', '50%'],
              avoidLabelOverlap: false,
              itemStyle: {
                borderRadius: 5,
              },
              label: {

                normal: {
                  formatter: '{b} {d}%',
                  textStyle: {
                    color: '#fff'  // 修改文字颜色为黑色
                  }
                },

              },

              labelLine: {
                show: true
              },
              data: data
            }
          ]
        };

        option && myChart.setOption(option);
}
const initDeviceType=(name,data)=>{
  var chartDom = document.getElementById('deviceTypeChart');
        var myChart = echarts.init(chartDom);
        var option;
        option = {
          tooltip: {
            formatter: '{a} <br/>{b} : {c} ({d}%)',
            trigger: 'axis',

          },
          grid: {
            top:'10',
          },
          legend: {
            bottom: '0%',
            left: 'center',
            textStyle: {
              color: '#fff'
            }
          },
          yAxis: {
              type:'category',
              data:name
          },
          xAxis:{
            type:'value',
          },
          series: [
            {
              name: '设备类型统计',
              type: 'bar',
              // radius: ['30%', '50%'],
              // avoidLabelOverlap: false,
              // itemStyle: {
              //   borderRadius: 5,
              // },
              itemStyle:{
                color:'#5470C6'
              },
              label: {

                normal: {
                  formatter: '{b} {d}%',
                  textStyle: {
                    color: '#fff'  // 修改文字颜色为黑色
                  }
                },

              },

              labelLine: {
                show: true
              },
              data: data
            }
          ]
        };

        option && myChart.setOption(option);
}
onMounted(async() => {
    formatData()
    timer = setInterval(formatData, 1000)
    let mapData = decode(china);
    let worldchina = Object.assign({},world)
    worldchina.features=worldchina.features.concat(mapData.features)
    worldAndChina=worldchina
    //console.log(worldchina)
    let list=[
      {
        date:'2023-03-01 09:01:01',
        sensor_sn:'设备1',
        device_code:'100',
        device_name:'温度',
        temper:'40',
        dens:'20.3',
        vis:'25.2',
        diel:'2.6',
        ppm:'53'
      },
      {
        date:'2023-03-01 09:01:01',
        sensor_sn:'设备1',
        device_code:'100',
        device_name:'温度',
        temper:'40',
        dens:'20.3',
        vis:'25.2',
        diel:'2.6',
        ppm:'53'
      },
      {
        date:'2023-03-01 09:01:01',
        sensor_sn:'设备1',
        device_code:'100',
        device_name:'温度',
        temper:'40',
        dens:'20.3',
        vis:'25.2',
        diel:'2.6',
        ppm:'53'
      },
      {
        date:'2023-03-01 09:01:01',
        sensor_sn:'设备1',
        device_code:'100',
        device_name:'温度',
        temper:'40',
        dens:'20.3',
        vis:'25.2',
        diel:'2.6',
        ppm:'53'
      },
      {
        date:'2023-03-01 09:01:01',
        sensor_sn:'设备1',
        device_code:'100',
        device_name:'温度',
        temper:'40',
        dens:'20.3',
        vis:'25.2',
        diel:'2.6',
        ppm:'53'
      },
    ]
    newDataList.value=list
    console.log(newDataList)
    const r = await fetch('/api/users')
    const data = await r.json()
    //console.log(r)
    let alrlist=[
      {
        date:'2023-03-01 09:01:01',
        device_name:'设备1',
        threshold_value:'水分',
        parameter_code:'40',
        aw:'10'
      }, 
      {
        date:'2023-03-01 09:01:01',
        device_name:'设备1',
        threshold_value:'水分',
        parameter_code:'40',
        aw:'10'
      }, 
      {
        date:'2023-03-01 09:01:01',
        device_name:'设备1',
        threshold_value:'水分',
        parameter_code:'40',
        aw:'10'
      }, 
    ]
    alertList.value=alrlist
    let from={
            fromName : '北京市',
            fromLatlng : [116.07673639616456, 40.110426254643315],
          }
    //let latlng=[[120.93141287481329, 40.93448132827849],[116.71809759843096, 37.96769678343516],[101.09220648866805, 36.568363251217576],[115.20215293852858, 38.886009413952934]]
    const response = await fetch('/api/map') 
    const data1 = await response.json()
    let locs=data1.data
    initMap(locs,from)
    
    const sensorRes = await fetch('/api/screen/oiltype')
    const sensorData = await sensorRes.json()
    initSensorChart(sensorData.data.name,sensorData.data.list)

    const oilRes = await fetch('/api/screen/oilInfo')
    const oilData = await oilRes.json()
    initOilChart(oilData.data)

    const deviceTypeRes = await fetch('/api/screen/deviceType')
    const deviceTypeData = await deviceTypeRes.json()
    initDeviceType(deviceTypeData.data.name,deviceTypeData.data.list)
  })
const decode=(json)=>{
  if (!json.UTF8Encoding) {
          return json;
        }
        var encodeScale = json.UTF8Scale;
        if (encodeScale == null) {
          encodeScale = 1024;
        }
        var features = json.features;
        for (var f = 0; f < features.length; f++) {
          var feature = features[f];
          var geometry = feature.geometry;
          var coordinates = geometry.coordinates;
          var encodeOffsets = geometry.encodeOffsets;
          for (var c = 0; c < coordinates.length; c++) {
            var coordinate = coordinates[c];
            if (geometry.type === "Polygon") {
              coordinates[c] = decodePolygon(
                coordinate,
                encodeOffsets[c],
                encodeScale
              );
            } else if (geometry.type === "MultiPolygon") {
              for (var c2 = 0; c2 < coordinate.length; c2++) {
                var polygon = coordinate[c2];
                coordinate[c2] = decodePolygon(
                  polygon,
                  encodeOffsets[c][c2],
                  encodeScale
                );
              }
            }
          }
        }
        // Has been decoded
        json.UTF8Encoding = false;
        return json;
}
const decodePolygon=(coordinate, encodeOffsets, encodeScale)=>{
  var result = [];
        var prevX = encodeOffsets[0];
        var prevY = encodeOffsets[1];
        for (var i = 0; i < coordinate.length; i += 2) {
          var x = coordinate.charCodeAt(i) - 64;
          var y = coordinate.charCodeAt(i + 1) - 64;
          // ZigZag decoding
          x = (x >> 1) ^ -(x & 1);
          y = (y >> 1) ^ -(y & 1);
          // Delta deocding
          x += prevX;
          y += prevY;
          prevX = x;
          prevY = y;
          // Dequantize
          result.push([x / encodeScale, y / encodeScale]);
        }
        return result;
}
const toggle=()=>{
  let element = document.getElementById('screen')
  screenfull.toggle(element)
}
onUnmounted(() => {
  clearInterval(timer)
})
</script>

<style lang="less" scoped>  
.container{
    position: absolute;
    background: #0d141e;
    width: 100vw;
    min-height: 100vh;
    top: 0;
    left: 0;
    margin: 0;
    #map{
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      z-index: 1;
    }
    .screenbox{
        position: relative;
        z-index: 2;
        width: 100%;
        height: 100vh;
        .contentBox{
          flex: 1;
          min-height: 0;
          position: absolute;
          top: 0;
          left: 0;
          width: 100%;
          display: flex;
          height: 100vh;
          padding:0 0px;
          padding-top: 60px;
          //z-index: 2;
          .left{
            width: 466px;
            height: 100%;
            background: url("@/assets/img/leftBg.png") no-repeat top;
            background-size: cover;
            position: relative;
            z-index: 2;
            .plate{             padding:20px 10px;
              width: 100%;
              .listBox{
                margin-top: 12px;
                .tab{
                  width: 100%;
                  display: flex;
                  height: 28px;
                  line-height: 28px;
                  align-items: center;
                  padding-left: 12px;
                  border-bottom: 1px solid #4885CE;
                  background: linear-gradient(0deg, rgba(70,85,199,0.2) 0%, rgba(50,137,255,0) 100%);
                  .item{
                    font-size: 13px;
                    color: #fff;
                  }
                }
                .rowBox{
                  height: 333px;
                  overflow-y: auto;
                }
                .row{
                  width: 100%;
                  display: flex;
                  align-items: center;
                  margin-top: 3px;
                  background: rgba(89,106,236,0.09);
                  padding-left: 12px;
                  .item{
                    font-size: 12px;
                    height: 30px;
                    line-height: 30px;
                  }
                }
              }
              .deviceName{
                width: 100%;
                height: 82px;
                background: url("../assets/img/devBg.png") no-repeat top;
                background-size: 100%;
                line-height: 82px;
                text-align: center;
                font-size: 18px;
                font-weight: bold;
                color: #1CFEFF;
                overflow: hidden;
                .deviceNameOi{
                    height: 41px;
                    overflow: hidden;
                    line-height: 41px;
                    margin-top: 20px;
                }
              }
              .timeBox{
                display: flex;
                align-items: center;
                justify-content: space-between;
                width: 100%;
                margin-top: 15px;
                .item{
                  width: 115px;
                  height: 119px;
                  text-align: center;
    
                  .time{
                    font-size: 26px;
                    font-weight: bold;
                    color: #fff;
                    margin-top: 28px;
                    overflow: hidden;
                  }
                  .name{
                    font-size: 12px;
                    color: #fff;
                  }
                }
                .item1{
                  background: url("../assets/img/time1.png") no-repeat top;
                  background-size: 100%;
                }
                .item2{
                  width: 146px;
                  height: 153px;
                  background: url("../assets/img/time2.png") no-repeat top;
                  background-size: 100%;
                  .time{
                    margin-top: 42px;
                  }
                }
                .item3{
                  background: url("../assets/img/time3.png") no-repeat top;
                  background-size: 100%;
                }
              }
              .ptit{
                width: 100%;
                height: 50px;
                background: url("../assets/img/tbg.png") no-repeat top;
                background-size: 100%;
                display: flex;
                align-items: center;
                font-family: Microsoft YaHei;
                font-weight: bold;
                font-size: 18px;
                color: #E5EFFF;
                font-style: italic;
                img{
                  width: 35px;
                  height: 35px;
                  margin-left: 10px;
                }
              }
              .devBox{
                display: flex;
                align-items: center;
                justify-content: space-between;
                width: 100%;
                margin-top: 15px;
                cursor: pointer;
                .item{
                  width: 90px;
                  .info{
                    width: 100%;
                    text-align: center;
                    transform: translateY(25px);
                    .num{
                      font-size: 27px;
                      font-weight: bold;
                    }
                    .name{
                      color: #FEFFFF;
                      font-size: 12px;
                    }
                  }
                  img{
                    width: 90px;
                    height: 70px;
                  }
                }
              }
            }
          }
          .center{
            flex: 1;
            min-height: 0;
            overflow: hidden;
            height: 100%;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            position: relative;
            .plate {
              padding: 30px;
              width: 100%;
              position: relative;
              z-index: 3;
              transform: translateY(-10px);
              .ptit{
                width: 400px;
                height: 42px;
                background: url("../assets/img/tbg.png") no-repeat top;
                background-size: 100%;
                display: flex;
                align-items: center;
                font-family: Microsoft YaHei;
                font-weight: bold;
                font-size: 18px;
                color: #E5EFFF;
                font-style: italic;
                img{
                  width: 35px;
                  height: 35px;
                  margin-left: 10px;
                }
              }
              .listBox {
                margin-top: 12px;    
                .tab {
                  width: 100%;
                  display: flex;
                  height: 28px;
                  line-height: 28px;
                  align-items: center;
                  padding-left: 12px;
                  border-bottom: 1px solid #4885CE;
                  background: linear-gradient(0deg, rgba(70, 85, 199, 0.2) 0%, rgba(50, 137, 255, 0) 100%);
    
                  .item {
                    font-size: 13px;
                    color: #fff;
                  }
                }
                .rowBox{
                  height: 172px;
                  overflow-y: auto;
                }
                .row {
                  width: 100%;
                  display: flex;
                  align-items: center;
                  margin-top: 3px;
                  background: rgba(89, 106, 236, 0.09);
                  padding-left: 12px;
    
                  .item {
                    font-size: 12px;
                    height: 30px;
                    line-height: 30px;
                    overflow: hidden;
                    padding-right: 5px;
                    text-overflow: ellipsis;
                    white-space: nowrap;
                  }
                }
              }
            }
            .dataBox{
              display: flex;
              align-items: center;
              justify-content: space-between;
              padding: 0 130px;
              margin-top: 55px;
              position: relative;
              z-index: 3;
              .tit{
                img{
                  width: 59px;
                  height: 47px;
                }
              }
              .item{
                width: 185px;
                height: 55px;
                display: flex;
                align-items:center;
                justify-content: center;
                font-size: 24px;
                font-weight: bold;
                color: white;
                span{
                  margin-left: 40px;
                }
              }
              .item1{
                background: url("../assets/img/name1.png") no-repeat top;
                background-size: 100%;
                color:#23FFFC;
              }
              .item2{
                background: url("../assets/img/name2.png") no-repeat top;
                background-size: 100%;
                color:#FED52F;
              }
              .item3{
                background: url("../assets/img/name3.png") no-repeat top;
                background-size: 100%;
                color:#239AFF;
              }
            }
          }
          .right{
            width: 466px;
            height: 100%;
            background: url("../assets/img/rightBg.png") no-repeat top;
            background-size: cover;
            padding: 30px 0;
            position: relative;
            z-index: 2;
            .plate {
    
              width: 100%;
              .ptit{
                width: 400px;
                height: 42px;
                background: url("../assets/img/tbg.png") no-repeat top;
                background-size: 100%;
                display: flex;
                align-items: center;
                font-family: Microsoft YaHei;
                font-weight: bold;
                font-size: 18px;
                color: #E5EFFF;
                font-style: italic;
                img{
                  width: 35px;
                  height: 35px;
                  margin-left: 10px;
                }
              }
            }
          }
        }
        .titBox{
          width: 100%;
          height: 90px;
          position: relative;
          z-index: 2;
          .titbg{
            width: 100%;
            height: 90px;
          }
          .dateBox{
            position: absolute;
            right: 57px;
            top: 26px;
            display: flex;
            align-items: center;
            z-index: 1;
            font-size: 14px;
            font-weight: bold;
            color: #19FCFF;
            img{
              margin-left: 24px;
              width: 20px;
              height: 20px;
            }
          }
        }
      }
}
.active {
    // background-color: #0f0; /* 鼠标滑过时颜色变为绿色 */
    animation: slide-in 0.5s forwards; /* 触发动画 */
    }
    
    @keyframes slide-in {
        0% {
        transform: translateY(-100%); /* 起始状态向左滑出 */
        }
        100% {
        transform: translateY(0); /* 结束状态在原位置 */
        }
    }
    #sensorChart{
      width: 100%;
      height: 230px;
    }
    #oilChart{
      width: 100%;
      height: 320px;
      position: relative;
      z-index: 1;
    }
    .yuan{
      width: 100%;
      height: 320px;
      position: absolute;
      top: 0;
      left: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      img{
        width: 224px;
        height: 224px;
      }
    }
    #deviceTypeChart{
      width: 100%;
      height: 230px;
    }
    :deep(.popver){
      .popver_btn{
        border: 1px solid #19FCFF;
        width: 91px;
        height: 21px;
        border-radius: 21px;
        text-align: center;
        line-height: 19px;
        font-size: 12px;
        margin: auto;
        margin-top: 6px;
        color: #19FCFF;
      }
    }
</style>